#include<stdio.h>
#include<stdlib.h>
#include<time.h>

double a[10000][10000],b[10000][10000],res[10000][10000];

void init(double mat[][10000]){
    for(int i=0;i<10000;i++){
        for(int j=0;j<10000;j++){
            mat[i][j]=rand()%100;
        }
    }
}

void add_row(double a[][10000],double b[][10000],double res[][10000]){
    for(int i=0;i<10000;i++){
        for(int j=0;j<10000;j++){
            res[i][j]=a[i][j]+b[i][j];
        }
    }
}

void add_col(double a[][10000],double b[][10000],double res[][10000]){
    for(int i=0;i<10000;i++){
        for(int j=0;j<10000;j++){
            res[j][i]=a[j][i]+b[j][i];
        }
    }
}

int main(){
    srand((unsigned int)time(NULL));
    clock_t start,end;
    double time;
    init(a);
    init(b);
    start=clock();
    add_row(a,b,res);
    end=clock();
    time=(double)(end-start)/CLOCKS_PER_SEC;
    printf("矩阵按行读取时间:%f\n",time);  //某次输出时间0.294686

    start=clock();
    add_col(a,b,res);
    end=clock();
    time=(double)(end-start)/CLOCKS_PER_SEC;
    printf("矩阵按列读取时间:%f\n",time);  //某次输出时间1.703246

    return 0;
}